package com.tiance.demo.service.mysql.bo.pageundolog;

/**
 * undo日志的page header
 */
public class UndoLogPageHeader {

    /**
     * 一个页头是18字节
     */
    public static final int SIZE = 18;

    private byte[] bytes;

    /**
     * 序列1 <br />
     * 2字节, 起始于: 0字节<br />
     * 本页面准备存储什么种类的undo日志:<br />
     * <ol>
     *     <li>TRX_UNDO_INSERT, 值1</li>
     *     <li>TRX_UNDO_UPDATE, 值2</li>
     * </ol>
     */
    private int trxUndoPageType;

    private String trxUndoPageTypeDesc;

    /**
     * 序列2 <br />
     * 2字节, 起始于: 2字节<br />
     * 表示在当前页面中是从什么位置开始存储undo日志的，或者说表示第一条undo日志在本页面中的起始偏移量
     */
    private int trxUndoPageStart;

    /**
     * 序列3 <br />
     * 2字节, 起始于: 4字节<br />
     * 与trxUndoPageStart对应，表示当前页面中存储的最后一条undo日志结束时的偏移量，或者说从这个位置开始，可以继续写入新的undo日志
     */
    private int trxUndoPageFree;

    /**
     * 序列4 <br />
     * 12字节, 起始于: 06字节<br />
     * 代表一个List Node结构
     */
    private String trxUndoPageNode;

    public byte[] getBytes() {
        return bytes;
    }

    public void setBytes(byte[] bytes) {
        this.bytes = bytes;
    }

    public int getTrxUndoPageType() {
        return trxUndoPageType;
    }

    public void setTrxUndoPageType(int trxUndoPageType) {
        this.trxUndoPageType = trxUndoPageType;
    }

    public String getTrxUndoPageTypeDesc() {
        return trxUndoPageTypeDesc;
    }

    public void setTrxUndoPageTypeDesc(String trxUndoPageTypeDesc) {
        this.trxUndoPageTypeDesc = trxUndoPageTypeDesc;
    }

    public int getTrxUndoPageStart() {
        return trxUndoPageStart;
    }

    public void setTrxUndoPageStart(int trxUndoPageStart) {
        this.trxUndoPageStart = trxUndoPageStart;
    }

    public int getTrxUndoPageFree() {
        return trxUndoPageFree;
    }

    public void setTrxUndoPageFree(int trxUndoPageFree) {
        this.trxUndoPageFree = trxUndoPageFree;
    }

    public String getTrxUndoPageNode() {
        return trxUndoPageNode;
    }

    public void setTrxUndoPageNode(String trxUndoPageNode) {
        this.trxUndoPageNode = trxUndoPageNode;
    }
}
